Legacy tray icons may want to take a pointer grab to show a popup menu,
and this is incompatible with message tray modality. To solve this,
escape the tray when forwarding clicks to the tray icons, and wait
for the input mode change to actually synthetize the X event.
https://bugzilla.gnome.org/show_bug.cgi?id=682244
_onSummaryItemClicked: function(summaryItem, button) {
if (summaryItem.source.handleSummaryClick()) {
- this._setClickedSummaryItem(null);
+ this._escapeTray();
} else {
if (!this._setClickedSummaryItem(summaryItem, button))
this._setClickedSummaryItem(null);
this.notifications.length > 0)
return false;
- if (Main.overview.visible) {
- // We can't just connect to Main.overview's 'hidden' signal,
- // because it's emitted *before* it calls popModal()...
- let id = global.connect('notify::stage-input-mode', Lang.bind(this,
- function () {
- global.disconnect(id);
- this.trayIcon.click(event);
- }));
- Main.overview.hide();
- } else {
+ let id = global.connect('notify::stage-input-mode', Lang.bind(this, function () {
+ global.disconnect(id);
this.trayIcon.click(event);
- }
+ }));
+
+ Main.overview.hide();
return true;
},